package genetica.mutacion;

import java.util.Random;

import genetica.cromosomas.Cromosoma;
import genetica.cromosomas.genes.Gen;

public class MutacionPorIntercambio extends AlgoritmoMutacion{

	public MutacionPorIntercambio(double pMutacion) {
		super(pMutacion);
	}

	@Override
	public void mutacion(Cromosoma original) {
		Random r = new Random();
		int nGenes = original.getGenes().size();
		for (int i = 0; i < original.getGenes().size();i++){
			if (r.nextDouble()< pMutacion) {
				int posDestino = r.nextInt(nGenes);
				Gen g = original.getGenes().get(i);
				original.getGenes().set(i,original.getGenes().get(posDestino));
				original.getGenes().set(posDestino,g);
			}
		}
		
	}
	@Override
	public String toString(){
		return "Mutación por intercambio";
	}


}
